// 引入axios
import axios from "axios";
// 引入仓库
import store from "../store";

// 创建实例
const instance = axios.create({
  // 在外网用的
  baseURL: "http://kumanxuan1.f3322.net:8881/cms",
  //叩丁狼
  // baseURL: "http://192.168.113.249:8081/cms",
});

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // 一般可以统一携带参数 统一携带token
    // console.log("请求拦截器");
    let token = localStorage.getItem("x-auth-token");
    if (token) {
      config.headers["x-auth-token"] = token;
    }

    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    // 可以对数据进行二次处理
    // console.log("响应拦截器", response);
    // return "zhangsan ";
    // 函数默认放回  undefined
    // return; //undefined
    // 统一处理错误信息(就不需要在每个组件再判断不为0的情况了)
    if (
      response.data.code != 0 &&
      response.data.code != 400 &&
      response.data.code != 407
    ) {
      // alert("拦截器:" + response.data.message);
      store.dispatch("asyncChangeToast", {
        isShow: true,
        title: response.data.message,
        type: "error",
      });
      return false;
    }
    return response.data;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
export default instance;
